home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
demovers
/
scripter
/
demo
/
birthday.sic
next >
Wrap
Text File
|
1998-09-26
|
2KB
|
107 lines
//ACE-SICPAR 4 0092
const DAY=3, MONTH=4, YEAR=5;
heute = localtime();
tag = heute[DAY];
mon = heute[MONTH]+1;
jahr = heute[YEAR]+1900;
sec = mktime(heute);
if (address("jinnee")) {
/*
* Datei mit Terminen (birthday.dat) im aktuellen Verzeichnis
* zeilenweise einlesen und Datum vergleichen
* Zeilenaufbau: tt.mm.jjjj text
*/
cnt = 0;
pcnt = 0;
past.length = 12;
zeilen.length = 12;
while (getline("birthday.dat", line)) {
ltag = substr(line, 0, 2);
if (ltag == "XX") ltag = tag;
lmon = substr(line, 3, 2);
if (lmon == "XX") {
lmon = mon;
/*
* mit folgenden Zeilen funktioniert zwar
* "01.XX.XXXX" (heute ist der 31.)
* aber vergangene Termine fehlen dann, sofern sie
* Platzhalter benutzen
*/
//- if (ltag<tag) {
//- ++lmon;
//- if (lmon==13) lmon = 1;
//- }
}
ljahr = substr(line, 6, 4);
if (ljahr == "XXXX") {
ljahr = jahr;
if (lmon<mon) ++ljahr;
}
heute[DAY] = ltag+0;
heute[MONTH] = lmon-1;
heute[YEAR] = ljahr-1900;
lsec = mktime(heute);
temp = (lsec-sec)/86400;
/*
* vergangene Termine sammeln wir in einem extra Array,
* mit dessen Daten wir die Ausgabe ggf auffüllen
*/
if (temp >= -5 && temp < 0) {
if (pcnt<10) {
past[pcnt++] = "-t 9";
sprintf(past[pcnt++], "%02d.%02d %s", ltag, lmon,
substr(line, 11));
}
}
if (temp >= 0 && temp < 10) {
zeilen[cnt++] = temp == 0 ? "-t 2" : "-t 1";
sprintf(zeilen[cnt], "%02d.%02d %s", ltag, lmon,
substr(line, 11));
if (++cnt == 12) break;
}
}
if (cnt+pcnt) {
/*
* die aktuellsten bereits vergangenen Termine eintragen
*/
while (pcnt && cnt < 12) {
insert(zeilen, 0, 2);
zeilen[1] = past[--pcnt];
zeilen[0] = past[--pcnt];
cnt += 2;
}
/*
* Array passend verkleinern
*/
zeilen.length = cnt;
/*
* Das hier wäre die herkömmliche Methode: Array bis zum
* Ende mit leeren Strings auffüllen
*/
//- while (cnt < zeilen.length) zeilen[cnt++] = "";
NoteOpen("-i NTIZ", "-b -1", "-l 1", "-f 122", "-p 10", zeilen);
}
}